import { setToken, http, clearToken } from '@/utils';

// 登录action
// 第一步登录，拿到token,把token 给reducer。
export const login = (mobile, code) => {
  return async (dispatch, getState) => {
    // 登录
    const res = await http.post('/authorizations', {
      mobile,
      code,
    });
    // console.log('登录res', res);

    // 本地也保存一份，覆盖上次登录的token
    // localStorage.setItem('geek-pc-token', res.data.data.token)
    setToken(res.data.data.token);

    // 把token 给reducer
    // 可以把 dispatch 理解为调用 login reducer 这个函数，传入一个action参数
    dispatch({
      type: 'login/token',
      payload: res.data.data.token,
    });
  };
};

// 推出登录
export const logout = () => {
  return (dispatch) => {
    // 清本地token
    clearToken();
    // 清reducer中的token
    dispatch({ type: 'login/logout' });
    // 清用reducer中户个人信息
    dispatch({ type: 'user/clearInfo' });
    // 其它你保存的敏感信息
  };
};
